#ifndef AST_EXPRESSION_INCLUSIVE_OR_EXPR_H
#define AST_EXPRESSION_INCLUSIVE_OR_EXPR_H

#include "../ASTNode.h"

class ExclusiveORExpr;

/*
C99 6.5.12
inclusive-OR-expression:
		exclusive-OR-expression
		inclusive-OR-expression    |    exclusive-OR-expression
*/
class InclusiveORExpr : public ASTNode
{
protected:
	InclusiveORExpr(void)
		: ASTNode(ASTNode::inclusive_OR_expression){};
public:
	InclusiveORExpr(ExclusiveORExpr *pExORExpr)
		: ASTNode(ASTNode::inclusive_OR_expression)
		, m_pExORExpr(pExORExpr)
		, m_pInORExpr(NULL){};
	InclusiveORExpr(InclusiveORExpr *pInOrExpr, ExclusiveORExpr *pExORExpr)
		: ASTNode(ASTNode::inclusive_OR_expression)
		, m_pExORExpr(pExORExpr)
		, m_pInORExpr(pInOrExpr){};


	virtual ~InclusiveORExpr(void);

	virtual void					codeGen();

protected:
	ExclusiveORExpr *				m_pExORExpr;
	InclusiveORExpr *				m_pInORExpr;
};


#endif

